/*
    开始时间：2024/3/4
    内容：做一个实验：查看core dump标志位是用来干什么的
    作者：剑痴
    结束时间：2024/3/4
*/

#include <iostream>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <cstddef>
using namespace std;

int main()
{
    //创建子进程
    //sleep(2);
    pid_t id = fork();
   if(id == 0) //子进程
   {
        int* p = nullptr;
        *p = 100; //野指针问题
        exit(1);
   } 
   //父进程
   int status = 0;
   waitpid(id,&status,0);
   cout<<"exit code:"<<((status>>8)&0xFF)<<endl; //获取退出码
   cout<<"exit signal:"<<(status&0x7F)<<endl;  //获取退出信号
   cout<<"code dump:"<<((status>>7)&0x1)<<endl; //获取code dump标志位
   return 0;
}